import ascii ############################################################################# # Question 1 et 2 : Écrire les codes des fonctions bin2dec et qrcode2dec # Proposer un test de qrcode2dec ############################################################################# # implémentation du QR Code de la figure 1: qrcode_fig1 = ascii.figure1 ############################################################################# # Question 3 : Fonctions dec2str et test_dec2str ############################################################################# def dec2str(liste_dec): """ entrée: liste d'entiers décimaux sortie: chaine de caractère formée des caractères correspondant de la table ascii """ table_ascii = ascii.dict_ascii chaine = "" for entier in liste_dec: chaine += table_ascii[entier] return chaine def test_dec2str(): """ Teste la fonction dec2str avec des données issues du module fourni """ tests = [ascii.test1, ascii.test2, ascii.test3] for test in tests: print(dec2str(test)) def qrcode2str(qrcode): return dec2str(qrcode2dec(qrcode)) ############################################################################# # Question 4 : Fonction str2qrcode déficiente ############################################################################# def str2qrcode(message): """ Convertit une chaine de caractères en liste de tuples binaires. """ qrcode = [] table_inverse = {valeur: cle for cle, valeur in ascii.dict_ascii.items()} for caractere in message: entier = table_inverse.get(caractere, 63) binaire_str = bin(entier)[2:] ligne = tuple(int(bit) for bit in binaire_str) qrcode.append(ligne) return qrcode